﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ZJF.DelegateWindowTest
{
    public partial class FrmMain : Form
    {
        public FrmMain()
        {
            InitializeComponent();
        }

        // 【2】编写具体方法（准备逆向调用的方法，和声明委托在同一个类中）
        public void RecvivedMsg(string value)
        {
            this.mainMsg.Text += value + "\r\n";
        }
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 3; i++)
            {
                FrmChild frm = new FrmChild();
                frm.Show();
                // 【3】这一步很关键，将委托变量与执行函数进行了关联。
                frm.SendMsg += RecvivedMsg;
            }
        }

        
    }
    //【1】声明委托类型（在哪个类中都可以，建议调用哪个方法，就在哪个类中）
    public delegate void TransferMsg(string value);
}
